7 CLS:CLEAR:PRINT"POLYFIT-LEAST SQUARES DATA FITTING":PRINT"TYPE ON LINE 10 DATA No.PTS,Degree":PRINT"TYPE ON LINE 100 DATA X(1),Y(1),X(2),Y(2),.......":PRINT"CONTINUE ON LINES 101-299"
10 DATA 14,4
100 DATA 40,2,39,3,32,4,30,5,29,6,28,7,27,8,26,9
101 DATA 24,10,23,11,21,12,19,13,17,14,15,15
305 READ M,N
307 Z=0:K=101:N=N+1:IF N>K THEN PRINT"100th DEGREE LIMIT":STOP
310 DIM Q(M),P(M),X(M),Y(M),C(M),A(15),B(15),S(15),G(15),U(15)
320 T7=Z:T8=Z:W7=Z:IF M<N THEN 710
330 FOR I=1 TO M:READ X(I),Y(I):W7=W7+X(I):T7=T7+Y(I):T8=T8+Y(I)^2:NEXT I
340 T9=(M*T8-T7^2)/(M*M-M)
350 PRINT"NUMBER OF POINTS=";M:PRINT"MEAN X=";W7/M
360 PRINT"MEAN Y=";T7/M
365 PRINT"STANDARD DEVIATION IN Y=";SQR(T9)
385 FOR I=1 TO M:P(I)=Z:Q(I)=1:NEXT I
390 FOR I=1 TO 15:A(I)=Z:B(I)=Z:S(I)=Z:U(I)=Z:NEXT I
395 E1=Z:F1=Z:W1=M:N4=K:K1=2:I=1:K1=2
400 IF N<>0 THEN K1=N4
405 W=Z
410 FOR L=1 TO M:W=W+Y(L)*Q(L):NEXT L
415 S(I)=W/W1
420 IF I-N4>=0 THEN 460
425 IF I-M>=0 THEN 460
430 E1=Z
435 FOR L=1 TO M:E1=E1+X(L)*Q(L)*Q(L):NEXT L
440 E1=E1/W1:A(I+1)=E1:W=Z
445 FOR L=1 TO M:V=(X(L)-E1)*Q(L)-F1*P(L)
450 P(L)=Q(L):Q(L)=V:W=W+V*V:NEXT L
455 F1=W/W1:B(I+2)=F1:W1=W:I=I+1:GOTO 405
460 FOR L=0 TO 12:G(L)=Z:NEXT L
465 G(1)=1
470 FOR J=1 TO N:S1=X
475 FOR L=1 TO N:IF L<>1 THEN G(L)=G(L)-A(L)*G(L-1)-B(L)*G(L-2)
480 S1=S1+S(L)*G(L):NEXT L
485 U(J)=S1:L=N
490 FOR I2=2 TO N:G(L)=G(L-1):L=L-1:NEXT I2
495 G(1)=Z:NEXT J
500 T=Z
505 FOR L=1 TO M:C(L)=Z:J=N
510 FOR I2=1 TO N:C(L)=C(L)*X(L)+U(J):J=J-1:NEXT I2
515 T3=Y(L)-C(L):T=T+T3^2:NEXT L
520 IF M=N THEN T5=0:GOTO 530
525 T5=T/(M-N)
530 Q7=1-T/(T9*(M-1))
535 PRINT"POLYNOMIAL DEGREE=";N-1:PRINT"INDEX OF DETERMINATION,I=";Q7:GOTO 613
550 IF R=3 THEN 625
560 PRINT:PRINT"POLYNOMIAL COEFFICIENTS:":FOR J=1 TO N:I2=J-1
565 PRINT U(J);"*X^";I2:NEXT J:PRINT
575 IF R=1 THEN 613
585 FOR L=1 TO M:Q8=Y(L)-C(L):PRINT"DATA POINT No.=";L:PRINT"Xactual=";X(L);:PRINT", Yactual=";Y(L)